VT-d: should not disable VT-d when find unknown DMAR structure type
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 25 Mar 2010 10:01:05 +0000 (10:01 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Thu, 25 Mar 2010 10:01:05 +0000 (10:01 +0000)
Now 4 DMAR structure types are supported (type value 0 ~ 3). Type
values > 3 are reserved for future use. Current implementation
disables VT-d when find unknown DMAR structure type, this may lead to
VT-d disabling on future platforms before supporting new types on
Xen. For forward compatibility, just skip unknown structures by
skipping the appropriate number of bytes indicated by the Length
field, and then VT-d still can be used.

Signed-off-by: Weidong Han <weidong.han@intel.com>
xen/drivers/passthrough/vtd/dmar.c

index 310a66da3ed2267dfa9bd0aea81b81729e2e7276..a20f76a57446ca59abb8192f613d89d64711bd68 100644 (file)
@@ -713,7 +713,6 @@ static int __init acpi_parse_dmar(struct acpi_table_header *table)
             dprintk(XENLOG_WARNING VTDPREFIX,
                     "Unknown DMAR structure type %x\n",
                     entry_header->type);
-            ret = -EINVAL;
             break;
         }
         if ( ret )